informatiky a informa�ných technológií Štúdie vybraných tém programových

نویسندگان

  • Mária Bieliková
  • Pavol Návrat
  • Anton Andrejko
چکیده

Factory 4,5 Chain of Responsibility 2 Builder 4,5 Command 4 Factory Method 4 Interpreter 2 Prototype 2 Iterator 4 Singleton Mediator 1 Adapter 4,5 Memento 3 Bridge 2 Observer 2,3 Composite 2 State 2 Decorator 2,3 Strategy 2 Façade 1 Template Method 2,3 Flyweight 2 Visitor 2,5 Proxy 4 5.2 Opisy návrhových vzorov Sú asný výskum sa snaží nájs prostriedky, ktoré by umožnili automaticky podporova rôzne aktivity vzorov v troch hlavných aspektoch: aplikovaní inštancií návrhových vzoZnovupoužitie návrhových vzorov na úrovni modelu 137 rov, verifikácii ich implementácii a ich vyh adávaní v existujúcich systémov za ú elom ich porozumenia a zdokumentovania. Aby bolo možné zautomatizova tieto aktivity, je potrebné podrobne zachyti opakujúcu sa štruktúru a správanie vzorov, ktoré sú asto oznaované ako leitmotif vzoru [8]. Leitmotify vzoru možno chápa ako abstraktné návrhové modely v návrhárovej mysli. Zachytávajú najdôležitejšie invarianty, ktoré generujú konkrétne riešenia špecifického návrhového problému. Štruktúra vzoru nepredstavuje riešenie, ale generuje riešenia [3]. Práve táto flexibilita odde uje vzory od návrhových modelov, šablón tried i OO frameworkov. Naneš astie modelovací jazyk, ktorý by dokázal presne špecifikova nemenné asti leitmotifov vzorov, zatia neexistuje. V nasledujúcich kapitolách budú podrobnejšie opísané vybrané prístupy opisu leitmotifov návrhových vzorov. 5.2.1 Metamodelovací jazyk založený na roliach Práca [10] predstavuje jazyk ur ený na špecifikáciu vzorov: Metamodelovací jazyk založený na roliach (Role Based Metamodeling Language – RBML). RBML umož uje autorom špecifikova návrhové vzory z viacerých perspektív: statickej štruktúry, interakcie, stavového správania sa. RBML používa na špecifikáciu vlastností vzorov vizuálnu notáciu založenú na UML [33] a textové obmedzenia zaznamenané v jazyku OCL [26]. Ide o špecifika ný jazyk opisujúci skupiny UML modelov. Samotná špecifikácia vzorov je založená na báze rolí, ktoré sú asociované s UML metatriedami. Role špecifikujú vlastnosti, ktoré musia sp a elementy modelu hrajúce danú rolu. To znamená, že model, ktorý zodpovedá špecifikácií vzoru, pozostáva z elementov hrajúcich role tejto špecifikácie. Môže obsahova aj iné aplika ne špecifické elementy, ak sa tým nedostáva do konfliktu s metamodelovou špecifikáciou vzoru. Základným modelom RBML je Statická špecifikácia vzoru (Static Pattern Specification – SPS) predstavujúca obmedzenia UML metamodelu, ktoré spres ujú priestor riešenia vzoru zo štrukturálneho aspektu. SPS pozostáva z klasifikátorov (classifier) a vz ahov (relationship), ktoré vychádzajú z metatried Classifier a Relationship UML metamodelu. Rola definovaná v rámci SPS môže by asociovaná s obmedzeniami definovanými pomocou OCL. Príklad SPS špecifikácie vzoru Visitor sa nachádza na obrázku 5-9. Na zachytenie dynamického správania sa ú astníkov vzoru slúži Interak ná špecifikácia vzoru (Interaction Pattern Specifications – IPS). IPS pozostáva z interak nej role, ktorá je špecializáciou triedy Interaction UML metamodelu. Interak ná rola je štruktúrou lifeline a správy (message), ktoré sú založené na metatriedach Lifeline a Message UML metamodelu. Z vizuálneho h adiska sa IPS je obdobou sekven ného diagramu UML. Na opis stavového správania sa ú astníkov vzoru RBML definuje Stavovú špecifikáciu vzoru (StateMachine Pattern Specifications – SMPS), ktorá vychádza zo stavového diagramu UML. 5.2.2 Precízne modelovanie vzorov na základe UML metamodelu Alternatívu k predchádzajúcemu prístupu predstavuje práca [21]. Jej hlavným cie om je opä podrobne zachyti leitmotif vzoru do modelu pozostávajúceho z navzájom spolupracujúcich rolí pomocou UML metamodelu. 138 Štúdie vybraných tém programových a informa ných systémov Obrázok 5-9. SPS model vzoru Visitor (v avo) a k nemu prislúchajúca inštancia (vpravo) [11]. Tento prístup však kladie vä ší dôraz na prácu s rolami, pri om podrobnejšie definuje vlastnosti ich použitia a sú asne využíva mieru abstrakcie, ktorú tento pojem umož uje. Pri práci s rolami uplat uje nasledovné pravidlá: 1. Rola predstavuje bu štrukturálnu entitu (zodpovedá jej napr. trieda, objekt) alebo entitu správania (zodpovedá jej napr. metóda). Leitmotif vzoru je opísaný ako množina spolupracujúcich rolí oboch typov. 2. Každej roli môže zodpoveda nieko ko konkrétnych hrá ov reprezentujúcich inštanciu role. Niektoré sú definované tak, aby im zodpovedal iba jeden hrá , iné sú ur ené tak, aby im zodpovedalo viac (0 N) hrá ov. Hovoríme o po etnosti role. 3. Role môžu ma viac dimenzií: napríklad vo vzore Abstarct factory každý hrá role ConcreteProduct zodpovedá ur itému typu produktu (AbstractProduct) a sú asne rodine produktu (= produkty vytvárané rovnakým hrá om ConcreteFactory). V tomto prípade je rola ConcreteProduct definovaná ako dvojrozmerná, pretože po et hráov role je viazaný na po ty hrá ov dvoch nezávislých rolí. 4. Vz ahy medzi rolami sa nie sú mapované jedna k jednej k výsledným hrá om: a. Jedna relácia na úrovni modelu rolí môže by mapovaná do viacerých vz ahov na úrovni návrhu. Napríklad vo vzore Abstract factory je každý hrá role ConcreteFactory zodpovedný za inštanciáciu hrá ov role ConcreteProduct. To, akým spôsobom sa to deje, nie je definované: môže to by lokálne na báze Factory method (klasicky) alebo delegovaním pomocou vzoru Prototype (vzniká vzor Plugable Factory [35]). Znovupoužitie návrhových vzorov na úrovni modelu 139 b. Vz ahy medzi vzormi môžu by mapované na iné typy vz ahov na úrovni návrhu. Napríklad vo vzore Observer je vz ah medzi rolami Observer a ConcreteObserver definovaný ako realizácia rozhrania. Ak však spojíme role Observer a ConcreteObserver do jedného hrá a, vz ah medzi rolami nebude zodpoveda žiadnemu vz ahu na úrovni návrhu. Modelovanie štruktúry leitmotifu je realizované na báze meta-úrov ovej spolupráce, presnejšie ako spolupracujúce elementy UML metamodelu. Mapovanie entít z domény návrhových vzorov do UML metamodelu sa nachádza v tabu ke 5-2. Tabu ka 5-2. Mapovanie entít z domény návrhových vzorov do UML metamodelu [21]. Doména vzorov UML doména Špecifikácia vzoru Collaboration Inštancia vzoru CollaborationInstanceSet Rola ClassifierRole Hrá role Instance Vz ah medzi rolami AssociationRole Na obrázku 5-10 je zachytený leitmotif vzoru Visitor na báze UML metamodelu. Pre každú rolu je v pravom hornom rohu zachytený po et hrá ov, ktorí k danej roli prislúchajú. V prípade role VisitConcreteElement je po et definovaný ako m*n, iže po et hrá ov role ConcreteVisitor krát po et hrá ov role VisitElement. Ide o príklad dvojrozmernej role, ke že po et hrá ov zodpovedajúcich tejto roli je závislý od po tu hrá ov dvoch nezávislých rolí. Obrázok 5-10. Leitmotif vzoru Visitor na báze UML metamodelu [21]. 140 Štúdie vybraných tém programových a informa ných systémov 5.2.3 Modelovanie založené na OWL Iný spôsob modelovania štruktúry vzorov je predstavený v práci [4]. Jej prístup sa na rozdiel od predchádzajúcich nezakladá na modelovaní pomocou UML, ale používa nástroje vyvinuté v rámci iniciatívy Webu so sémantikou (Semantic Web): RDF (Resource Description Framework) [29] a z neho vychádzajúci jazyk OWL (Web Ontology Language) [27]. Dôvodom použitia týchto riešení je vo nos , ktorú poskytujú. Neboli vyvinuté na ukladanie znalostí o vzoroch i softvérových riešeniach, ale na zachytávanie informácií o akýchko vek zdrojoch, ktoré sú jasne identifikovate né pomocou svojich URI (Uniform Resource Identifier). Z toho vyplývajú široké možnosti, ktoré jazyky RDF a OWL poskytujú. Napríklad triedam možno definova vlastnosti presne v takej forme, ako je potrebné (napr. isAbstract, isStatic, isSubclass-Of). Na modelovanie vzorov a ich štruktúry bola použitá hierarchia OWL tried nachádzajúca sa na obrázku 5-11. V hierarchii sa nenachádzajú konkrétne prvky modelov ako triedy i metódy, ale len ich šablóny (ClassTemplate, MemberTemplate). Dôvodom toho je fakt, že táto hierarchia neobsahuje konkrétne stavebné jednotky návrhových vzorov, ale role, ktoré bývajú naj astejšie realizované práve týmito stavebnými prvkami. Takže napríklad ak pre vzor Abstract factory je ConcreteFactory inštanciou triedy ClassTemplate, znamená to, že ide o rolu, ktorá je štandardne realizovaná triedou. Obrázok 5-11. Základná hierarchia OWL tried ontológie (vrstva ODOL) [4]. Autori definovali vlastnú metamodelovú architektúru, ktorá sa odlišuje od štandardnej štvorvrstvovej OMG architektúry (M0 – inštancie, M1 – model tried, M2 – metamodel, M3 – metametamodel MOF). Schéma tejto architektúry sa nachádza na obrázku 5-12. Dolné dve vrstvy zodpovedajú štandardným OMG modelom M0 a M1. Najvyššia vrstva predstavujúca jazyk OWL zodpovedá modelu M3. Vrstva ODOL (Object Design Ontology Layer) je metamodelová vrstva zodpovedajúca vrstve M2 (obrázok 5-11). Obsahuje definície základných pojmov potrebných na opis vzorov, napr. triedy *Template, Participant, Pattern a iné. Vrstva PDL (Pattern Description Layer) obsahuje tvrdenia o vzoroch vytvorené pomocou konceptov z vrstvy ODOL, napríklad definície rolí a vz ahov medzi nimi. Príklad opisu návrhového vzoru Abstract factory sa nachádza na obrázku 5-13. Zdroje modelu (zobrazené ako elipsy) predstavujú role vzoru, ktoré sú v rámci OWL opisu definované ako inštancie tried definovaných vo vrstve ODOL. Znovupoužitie návrhových vzorov na úrovni modelu 141 OWL vrstva napr. owl:Class, owl:ObjectProperty ODOL (object design ontology layer) napr. ClassTemplate, MemberTemplate, Pattern PDL (pattern description layer) napr. AbstractFactory.Creator, Singleton.StaticField triedy aplikácie ( OMG M1 ) napr. Transactions, Customers, Window objekty aplikácie (OMG M0) napr. transactions, customers, window ab st ra kc ia

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Slovenská Technická Univerzita V Bratislave Fakulta Informatiky a Informačných Technológií

The information overloading is one of the biggest problems nowadays. We can see it in various domains, including business, especially in the news. This is more significant in connection to news portals, where the quality of the news portal is commonly measured by amount of news added to the site. Then the most renowned news portals add hundreds of new articles daily. The classical solution usua...

متن کامل

Špeciálne vzdelávanie v USA

Autori v práci načrtávajú históriu vývoja špeciálneho vzdelávania a hľadajú východiská jej ďalšieho smerovania, organizácie a realizácie. Autori diskutujú aj otázky aplikácie, výskumu, personálneho zabezpečenia, práv študentov, právneho ochrany a impakt technológií. Hoci vstup a rozvoj špeciálneho vzdelávania sa považuje za prevratnú zmenu, autori záverujú, že zmeny budú skôr evolučné ako revol...

متن کامل

Charles University in Prague Faculty of Mathematics and Physics Constraint - based Timetabling

Univerzita Karlova v Praze Matematicko-fyzikální fakulta Rozvrhování s omezujícími podmínkami Autoreferát doktorandské disertační práce k získání akademicko-vědeckého titulu doktor. Disertační práce byla vypracována v rámci doktorandského studia, které uchazeč absolvoval na katedře teoretické informatiky Univerzity Karlovy v letech 2001-2005.-1

متن کامل

Hardwarové bezpečnostní moduly – API a útoky

Abstrakt: Příspěvek pojednává o vybraných aspektech hardwarových bezpečnostních modulů a zaměřuje se na útoky na a přes aplikační programovací rozhraní (API). Nejdříve se kromě architektury kryptografických modulů seznámíme se základními požadavky na jejich bezpečnost a s americkými normami FIPS 140-1 a FIPS 140-2, jimiž jsou tyto požadavky obvykle specifikovány. Dále se pak budeme věnovat samo...

متن کامل

Nepopiratelnost digitálních podpisů

Abstrakt. Příspěvek se věnuje problematice digitálního podpisu jakožto základnímu stavebnímu prvku služeb nepopiratelnosti podle norem ISO/IEC 13888 a ISO/IEC 10181-4. Zatímco otázkám konstrukce robustních důkazů o nepopiratelnosti vybraných událostí je v uvedených normách věnována relativně velká pozornost, tak otázce nepopiratelnosti samotného dílčího aktu provedení operace podpisu v použitém...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009